package JavaShengSai;

import java.util.Scanner;

/**
 * 12. 车牌
 * https://www.lanqiao.cn/problems/2361/learning/?page=1&first_category_id=1&tags=2020,%E7%9C%81%E8%B5%9B&tag_relation=intersection&sort=pass_rate&asc=0
 */
public class Main17 {
    /**
     * 枚举
     * @param args
     */
    public static void main1(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        // 使用暴力枚举
        int count = 0;
        for(int a = 0;a < 16;a++) {
            for(int b = 0;b < 16;b++) {
                for(int c = 0;c < 16;c++) {
                    for(int d = 0;d < 10;d++) {
                        for(int e = 0;e < 10;e++) {
                            for(int f = 0;f < 10;f++) {
                                if(a == b && b == c || b == c && c == d || c == d && d == e || d == e && e == f) {
                                    continue;
                                }else {
                                    count++;
                                }
                            }
                        }
                    }
                }
            }
        }
        System.out.println(count);
        scan.close();
    }

    /**
     * dfs
     */
    static int[] arr = new int[6];
    static int count = 0;

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        // 使用dfs进行遍历
        dfs(0);
        System.out.println(count);
        scan.close();
    }

    public static void dfs(int step) {
        if(step == 6) {
            count++;
            return;
        }

        for(int i = 0;i < 16;i++) {
            // 16种肯呢个，每一个
            if(step > 2 && i >= 10) {
                // 说明，后面三位将填字符，但是不能添加，所以进行退出
                return;
            }
            // 6个位置都放置哪个数字
            arr[step] = i;
            // 判断放入这个之后，是否满足条件
            if(step > 1 && (arr[step] == arr[step - 1] && arr[step - 1] == arr[step - 2])) {
                continue; // 跳出，再重新放入一次，直至满足条件
            }
            dfs(step + 1); // 遍历到下一个位置
        }
    }
}
